//存储数据类

import 'package:shared_preferences/shared_preferences.dart';

class TokenManager {
  //定义值
  String? _token;

  //定义键
  final _key = 'token';

  //设置单例模式
  // static TokenManager? _instance;是私有静态变量，用于保存唯一实例。
  static TokenManager? _instance;
  //设置私有构造函数
  TokenManager._internal();
  //单例模式的工程构造函数
  factory TokenManager() {
    //判断_instance是否存在:若不存在则创建新实例，否则返回已有实例。
    _instance ??= TokenManager._internal();
    return _instance!;
  }

  //初始化token
  Future<void> initToken() async {
    //创建SharedPreferences实例
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    _token = prefs.getString(_key);
  }

  //存储token
  Future<void> saveToken(String token) async {
    //创建SharedPreferences实例
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    //保存token
    await prefs.setString(_key, token);
    //更新token
    _token = token;
  }

  //获取token
  String? getToken() {
    return _token;
  }

  //删除token
  Future<void> removeToken() async {
    //创建SharedPreferences实例
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    //删除token
    await prefs.remove(_key);
    //更新token
    _token = null;
  }
}
